﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using Frame;
using System.Data;
using System.Configuration;
using FirebirdSql.Data.FirebirdClient;
using Estrutura;


namespace Banco
{

    public class BD_Modelo_partNumber
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public BD_Modelo_partNumber()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public BD_Modelo_partNumber(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos

        public DataSet _retorna_Modelo_partNumber(
                                                string MODELO_ID,
                                                string PART_NUMBER_ID,
                                                string MOP_OBSERVACAO,
                                                string USU_INSERT,
                                                string DATA_INSERT,
                                                string USU_UPDATE,
                                                string DATA_UPDATE
                                                )
        {

            if (string.IsNullOrEmpty(MODELO_ID)) MODELO_ID = "'0'";
            if (string.IsNullOrEmpty(PART_NUMBER_ID)) PART_NUMBER_ID = "'0'";
            if (string.IsNullOrEmpty(MOP_OBSERVACAO)) MOP_OBSERVACAO = "''";
            if (string.IsNullOrEmpty(USU_INSERT)) USU_INSERT = "'0'";
            if (string.IsNullOrEmpty(DATA_INSERT)) DATA_INSERT = "''";
            if (string.IsNullOrEmpty(USU_UPDATE)) USU_UPDATE = "'0'";
            if (string.IsNullOrEmpty(DATA_UPDATE)) DATA_UPDATE = "''";

            string sql = "SELECT " +
                                  "MODELO_PN.MODELO_ID, " +
                                  "MODELO_PN.PART_NUMBER_ID, " +
                                  "MODELO_PN.MOP_OBSERVACAO, " +
                                  "MODELO_PN.USU_INSERT, " +
                                  "MODELO_PN.DATA_INSERT, " +
                                  "MODELO_PN.USU_UPDATE, " +
                                  "MODELO_PN.DATA_UPDATE " +
                            "FROM MODELO_PN " +
                            "LEFT JOIN MODELO ON MODELO.MODELO_ID = MODELO_PN.MODELO_ID " +
                            "LEFT JOIN PN_CADASTRO ON PN_CADASTRO.PART_NUMBER_ID = MODELO_PN.PART_NUMBER_ID " +
                            /*"LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +
                            "LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +*/
                            "WHERE " +
                            "      (MODELO_PN.MODELO_ID                       = " + MODELO_ID + "  OR " + MODELO_ID + " = '0') AND " +
                            "      (MODELO_PN.PART_NUMBER_ID                  = " + PART_NUMBER_ID + "  OR " + PART_NUMBER_ID + " = '0') AND " +
                            "      (MODELO_PN.MOP_OBSERVACAO                  = " + MOP_OBSERVACAO + "  OR " + MOP_OBSERVACAO + " = '') AND " +
                            "      (MODELO_PN.USU_INSERT                      = " + USU_INSERT + "  OR " + USU_INSERT + " = '0') AND " +
                            "      (MODELO_PN.DATA_INSERT                     = " + DATA_INSERT + "  OR " + DATA_INSERT + " = '') AND " +
                            "      (MODELO_PN.USU_UPDATE                      = " + USU_UPDATE + "  OR " + USU_UPDATE + " = '0') AND " +
                            "      (MODELO_PN.DATA_UPDATE                     = " + DATA_UPDATE + "  OR " + DATA_UPDATE + " = '') ";

            DataSet dsRetorno = fireBird.retornaDataSet(sql, conectionString);
            return dsRetorno;

        }


        public List<ES_Modelo_partNumber> _obter_Modelo_partNumber(
                                                string MODELO_ID,
                                                string PART_NUMBER_ID,
                                                string MOP_OBSERVACAO,
                                                string USU_INSERT,
                                                string DATA_INSERT,
                                                string USU_UPDATE,
                                                string DATA_UPDATE
                                                )
        {

            if (string.IsNullOrEmpty(MODELO_ID)) MODELO_ID = "0";
            if (string.IsNullOrEmpty(PART_NUMBER_ID)) PART_NUMBER_ID = "0";
            if (string.IsNullOrEmpty(MOP_OBSERVACAO)) MOP_OBSERVACAO = "''"; else MOP_OBSERVACAO = Util.retonarAspas(MOP_OBSERVACAO + " % ");
            if (string.IsNullOrEmpty(USU_INSERT)) USU_INSERT = "0";
            if (string.IsNullOrEmpty(DATA_INSERT)) DATA_INSERT = "''"; else DATA_INSERT = Util.retonarAspas(DATA_INSERT + " % ");
            if (string.IsNullOrEmpty(USU_UPDATE)) USU_UPDATE = "0";
            if (string.IsNullOrEmpty(DATA_UPDATE)) DATA_UPDATE = "''"; else DATA_UPDATE = Util.retonarAspas(DATA_UPDATE + " % ");

            string sql = "SELECT " +
                                  "MODELO_PN.MODELO_ID, " +
                                  "MODELO.MOD_CODIGO, " +
                                  "MODELO_PN.PART_NUMBER_ID, " +
                                  "PN_CADASTRO.PNU_PART_NUMBER, "+
                                  "PN_CADASTRO.PNU_DESCRICAO_INGLES, " +
                                  "MODELO_PN.MOP_OBSERVACAO, " +
                                  "MODELO_PN.USU_INSERT, " +
                                  "MODELO_PN.DATA_INSERT, " +
                                  "MODELO_PN.USU_UPDATE, " +
                                  "MODELO_PN.DATA_UPDATE " +
                            "FROM MODELO_PN " +
                            "LEFT JOIN MODELO ON MODELO.MODELO_ID = MODELO_PN.MODELO_ID " +
                            "LEFT JOIN PN_CADASTRO ON PN_CADASTRO.PART_NUMBER_ID = MODELO_PN.PART_NUMBER_ID " +
                            /*"LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +
                            "LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +*/
                            "WHERE " +
                            "      (MODELO_PN.MODELO_ID                       = " + MODELO_ID + "  OR " + MODELO_ID + " = '0') AND " +
                            "      (MODELO_PN.PART_NUMBER_ID                  = " + PART_NUMBER_ID + "  OR " + PART_NUMBER_ID + " = '0') AND " +
                            "      (MODELO_PN.MOP_OBSERVACAO                  = " + MOP_OBSERVACAO + "  OR " + MOP_OBSERVACAO + " = '') ";
                            /*"      (MODELO_PN.USU_INSERT                      = " + USU_INSERT + "  OR " + USU_INSERT + " = '0') AND " +
                            "      (MODELO_PN.DATA_INSERT                     = " + DATA_INSERT + "  OR " + DATA_INSERT + " = '') AND " +
                            "      (MODELO_PN.USU_UPDATE                      = " + USU_UPDATE + "  OR " + USU_UPDATE + " = '0') AND " +
                            "      (MODELO_PN.DATA_UPDATE                     = " + DATA_UPDATE + "  OR " + DATA_UPDATE + " = '') "*/

            List<ES_Modelo_partNumber> lista = new List<ES_Modelo_partNumber>();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    ES_Modelo_partNumber item = new ES_Modelo_partNumber();
                    item.MODELO_ID = dr["MODELO_ID"].ToString();
                    item.MOD_CODIGO = dr["MOD_CODIGO"].ToString();
                    item.PART_NUMBER_ID = dr["PART_NUMBER_ID"].ToString();
                    item.PNU_PART_NUMBER = dr["PNU_PART_NUMBER"].ToString();
                    item.PNU_DESCRICAO_INGLES = dr["PNU_DESCRICAO_INGLES"].ToString();
                    item.MOP_OBSERVACAO = dr["MOP_OBSERVACAO"].ToString();
                    item.USU_INSERT = dr["USU_INSERT"].ToString();
                    item.DATA_INSERT = dr["DATA_INSERT"].ToString();
                    item.USU_UPDATE = dr["USU_UPDATE"].ToString();
                    item.DATA_UPDATE = dr["DATA_UPDATE"].ToString();
                    lista.Add(item);

                }
                return lista;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public ES_Modelo_partNumber _obter_Modelo_partNumber_by_id(string MODELO, string PART_NUMBER_ID)
        {

            if (string.IsNullOrEmpty(MODELO)) MODELO = "'0'";

            string sql = "SELECT " +
                                  "MODELO_PN.MODELO_ID, " +
                                  "MODELO.MOD_CODIGO, " +
                                  "MODELO_PN.PART_NUMBER_ID, " +
                                  "PN_CADASTRO.PNU_PART_NUMBER, " +
                                  "PN_CADASTRO.PNU_DESCRICAO_INGLES, " +
                                  "MODELO_PN.MOP_OBSERVACAO, " +
                                  "MODELO_PN.USU_INSERT, " +
                                  "MODELO_PN.DATA_INSERT, " +
                                  "MODELO_PN.USU_UPDATE, " +
                                  "MODELO_PN.DATA_UPDATE " +
                            "FROM MODELO_PN " +
                            "LEFT JOIN MODELO ON MODELO.MODELO_ID = MODELO_PN.MODELO_ID " +
                            "LEFT JOIN PN_CADASTRO ON PN_CADASTRO.PART_NUMBER_ID = MODELO_PN.PART_NUMBER_ID " +
                            /*"LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +
                            "LEFT JOIN USUARIO ON USUARIO.USUARIO_ID = MODELO_PN.USUARIO_ID " +*/
                            "WHERE " +
                            "      (MODELO_PN.MODELO = " + MODELO + "  AND MODELO_PN.PART_NUMBER_ID =  " + PART_NUMBER_ID + ") ";

            ES_Modelo_partNumber item = new ES_Modelo_partNumber();
            FbConnection fbConexao = new FbConnection(conectionString);
            FbDataReader dr = fireBird.retornaDataReader(sql, conectionString, fbConexao);
            try
            {
                while (dr.Read())
                {
                    item.MODELO_ID = dr["MODELO_ID"].ToString();
                    item.PART_NUMBER_ID = dr["PART_NUMBER_ID"].ToString();
                    item.MOP_OBSERVACAO = dr["MOP_OBSERVACAO"].ToString();
                    item.USU_INSERT = dr["USU_INSERT"].ToString();
                    item.DATA_INSERT = dr["DATA_INSERT"].ToString();
                    item.USU_UPDATE = dr["USU_UPDATE"].ToString();
                    item.DATA_UPDATE = dr["DATA_UPDATE"].ToString();

                }
                return item;
            }
            finally
            {
                fireBird.fecharConexao(fbConexao);
            }
        }


        public void _inserir_Modelo_partNumber(
                                                string MODELO_ID,
                                                string PART_NUMBER_ID,
                                                string MOP_OBSERVACAO,
                                                string USU_INSERT,
                                                string DATA_INSERT,
                                                string USU_UPDATE,
                                                string DATA_UPDATE
                                                )
        {

            string sql = " INSERT INTO MODELO_PN " +
                         "      ( " +
                         "          MODELO_ID                      , " +
                         "          PART_NUMBER_ID                 , " +
                         "          MOP_OBSERVACAO                 , " +
                         "          USU_INSERT                     , " +
                         "          DATA_INSERT                    , " +
                         "          USU_UPDATE                     , " +
                         "          DATA_UPDATE                      " +
                 "      )" +
                 "  VALUES " +
                 "      ( " +
                              Util.retonarAspas(MODELO_ID, true) + ", " +
                              Util.retonarAspas(PART_NUMBER_ID, true) + ", " +
                              Util.retonarAspas(MOP_OBSERVACAO, true) + ", " +
                              Util.retonarAspas(USU_INSERT, true) + ", " +
                              Util.retonarAspas(DATA_INSERT, true) + ", " +
                              Util.retonarAspas(USU_UPDATE, true) + ", " +
                              Util.retonarAspas(DATA_UPDATE, true) +
                 "      )";
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _atualizar_Modelo_partNumber(
                                                string MODELO_ID,
                                                string PART_NUMBER_ID,
                                                string MOP_OBSERVACAO,
                                                string USU_INSERT,
                                                string DATA_INSERT,
                                                string USU_UPDATE,
                                                string DATA_UPDATE
                                                )
        {

            string sql = " UPDATE MODELO_PN SET " +
                         "      MODELO_ID                       = " + Util.retonarAspas(MODELO_ID, true) + ", " +
                         "      PART_NUMBER_ID                  = " + Util.retonarAspas(PART_NUMBER_ID, true) + ", " +
                         "      MOP_OBSERVACAO                  = " + Util.retonarAspas(MOP_OBSERVACAO, true) + ", " +
                         "      USU_INSERT                      = " + Util.retonarAspas(USU_INSERT, true) + ", " +
                         "      DATA_INSERT                     = " + Util.retonarAspas(DATA_INSERT, true) + ", " +
                         "      USU_UPDATE                      = " + Util.retonarAspas(USU_UPDATE, true) + ", " +
                         "      DATA_UPDATE                     = " + Util.retonarAspas(DATA_UPDATE, true) +
                         " WHERE MODELO_ID =  " + MODELO_ID + " AND PART_NUMBER_ID = " + PART_NUMBER_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        public void _excluir_Modelo_partNumber(string MODELO_ID, string PART_NUMBER_ID)
        {
            string sql = "DELETE FROM MODELO_PN WHERE MODELO_ID = " + MODELO_ID + " AND PART_NUMBER_ID= " + PART_NUMBER_ID;
            try
            {
                fireBird._ExecutarComandoRetornandoID(sql, conectionString, false, usuario);
            }
            catch
            { }
        }



        #endregion
    }
}
